home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 44
/
Amiga Format CD44 (1999-08-26)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-10].iso
/
-in_the_mag-
/
basics
/
amos
/
intuiextend20b.lha
/
distribution
/
exemples
/
3dCube.asc
next >
Wrap
Text File
|
1980-03-03
|
3KB
|
118 lines
'**************************************
' *
' IntuiExtend.Lib 2.0/@1995-98 *
' *
' by CIERP Philippe. *
' *
' from AMIGAzette 83 *
' *
'**************************************
'
' Command
' -Wb 3d Centre
' -Wb 3d Eye
' -Wb 3d Eye
' -Wb 3d Point
' -Wb 3d X
' -Wb 3d Y
' -Wb 3d Position
'
Set Buffer 50
Screen Open 0,320,512,32,$4
Curs Off : Flash Off : Cls 0
Palette $0,$111,$222,$333,$444,$555,$666,$777,$888,$999,$AAA,$BBB,$CCC,$DDD,$EEE,$FFF,$11,$11,$22,$33,$44,$55,$66,$77,$88,$99,$AA,$BB,$CC,$DD,$EE,$FF
'
Double Buffer : Autoback 0
'
Dim POLY(5,4,1)
'
Global CA,CB,CC,SA,SB,SC,A,B,AE,BE,CE
Limit Mouse 0,0 To 1024,1024
Wb 3d Centre Screen Width/2,Screen Height/2
'
EX=0 : EY=0 : EZ=600
Wb 3d Eye EX,EY,EZ
'
XM=X Mouse : YM=Y Mouse
'
While Mouse Key<>2
Timer=0
A$=Inkey$
If A$="7" Then Dec MX
If A$="8" Then Inc MX
If A$="4" Then Dec MY
If A$="5" Then Inc MY
If A$="1" Then Dec MZ
If A$="2" Then Inc MZ
If A$="9" Then Inc EZ
If A$="6" Then Dec EZ
'
Add CA,MX,0 To 359
Add CB,MY,0 To 359
Add CC,MZ,0 To 359
'
Wb 3d Angle CA,CB,CC
Wb 3d Eye XM-X Mouse,YM-Y Mouse,EZ
'0
Wb 3d Point -100,100,100 : X=Wb 3d X : Y=Wb 3d Y
POLY(0,0,0)=X : POLY(3,1,0)=X : POLY(4,3,0)=X
POLY(0,0,1)=Y : POLY(3,1,1)=Y : POLY(4,3,1)=Y
'1
Wb 3d Point 100,100,100 : X=Wb 3d X : Y=Wb 3d Y
POLY(0,1,0)=X : POLY(1,0,0)=X : POLY(4,2,0)=X
POLY(0,1,1)=Y : POLY(1,0,1)=Y : POLY(4,2,1)=Y
'2
Wb 3d Point 100,-100,100 : X=Wb 3d X : Y=Wb 3d Y
POLY(0,2,0)=X : POLY(1,3,0)=X : POLY(5,1,0)=X
POLY(0,2,1)=Y : POLY(1,3,1)=Y : POLY(5,1,1)=Y
'3
Wb 3d Point -100,-100,100 : X=Wb 3d X : Y=Wb 3d Y
POLY(0,3,0)=X : POLY(3,2,0)=X : POLY(5,0,0)=X
POLY(0,3,1)=Y : POLY(3,2,1)=Y : POLY(5,0,1)=Y
'4
Wb 3d Point -100,100,-100 : X=Wb 3d X : Y=Wb 3d Y
POLY(4,0,0)=X : POLY(3,0,0)=X : POLY(2,1,0)=X
POLY(4,0,1)=Y : POLY(3,0,1)=Y : POLY(2,1,1)=Y
'5
Wb 3d Point 100,100,-100 : X=Wb 3d X : Y=Wb 3d Y
POLY(2,0,0)=X : POLY(1,1,0)=X : POLY(4,1,0)=X
POLY(2,0,1)=Y : POLY(1,1,1)=Y : POLY(4,1,1)=Y
'6
Wb 3d Point 100,-100,-100 : X=Wb 3d X : Y=Wb 3d Y
POLY(1,2,0)=X : POLY(2,3,0)=X : POLY(5,2,0)=X
POLY(1,2,1)=Y : POLY(2,3,1)=Y : POLY(5,2,1)=Y
'7
Wb 3d Point -100,-100,-100 : X=Wb 3d X : Y=Wb 3d Y
POLY(3,3,0)=X : POLY(2,2,0)=X : POLY(5,3,0)=X
POLY(3,3,1)=Y : POLY(2,2,1)=Y : POLY(5,3,1)=Y
'
'Polygone
For T=0 To 5
RR[T/3,POLY(T,0,0),POLY(T,0,1),POLY(T,1,0),POLY(T,1,1),POLY(T,2,0),POLY(T,2,1)]
If Param<=0
Polygon POLY(T,0,0),POLY(T,0,1) To POLY(T,1,0),POLY(T,1,1) To POLY(T,2,0),POLY(T,2,1)
End If
RR[T/3,POLY(T,2,0),POLY(T,2,1),POLY(T,3,0),POLY(T,3,1),POLY(T,0,0),POLY(T,0,1)]
If Param<=0
Polygon POLY(T,0,0),POLY(T,0,1) To POLY(T,3,0),POLY(T,3,1) To POLY(T,2,0),POLY(T,2,1)
End If
Next T
Pen 15 : Print "Timer:";Timer;" X:";MX;" Y:";MY;" Z:";MZ;" Zoom:";EZ;" "
Screen Swap
Cls 0
Home
MX1=MX : MY1=MY
Wend
'
Procedure RR[T,X1,Y1,X2,Y2,X3,Y3]
C=Wb 3d Position(X1,Y1,X2,Y2,X3,Y3)
'
COUL=15
If C<=0
P=C/(-27*COUL)
P=Min(Max(1,P),COUL)
End If
Ink P+((T)*16)
'
End Proc[C]